define("lib/cmd-plugins/ueditor/1.0.0/ueditor.parse", [], function(require, exports, moudule) {
    /*!
 * UEditor
 * version: ueditor
 * build: Thu May 29 2014 16:47:49 GMT+0800 (中国标准时间)
 */
    (function() {
        (function() {
            UE = window.UE || {};
            var isIE = !!window.ActiveXObject;
            //定义utils工具
            var utils = {
                removeLastbs: function(url) {
                    return url.replace(/\/$/, "");
                },
                extend: function(t, s) {
                    var a = arguments, notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false, len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length;
                    for (var i = 1; i < len; i++) {
                        var x = a[i];
                        for (var k in x) {
                            if (!notCover || !t.hasOwnProperty(k)) {
                                t[k] = x[k];
                            }
                        }
                    }
                    return t;
                },
                isIE: isIE,
                cssRule: isIE ? function(key, style, doc) {
                    var indexList, index;
                    doc = doc || document;
                    if (doc.indexList) {
                        indexList = doc.indexList;
                    } else {
                        indexList = doc.indexList = {};
                    }
                    var sheetStyle;
                    if (!indexList[key]) {
                        if (style === undefined) {
                            return "";
                        }
                        sheetStyle = doc.createStyleSheet("", index = doc.styleSheets.length);
                        indexList[key] = index;
                    } else {
                        sheetStyle = doc.styleSheets[indexList[key]];
                    }
                    if (style === undefined) {
                        return sheetStyle.cssText;
                    }
                    sheetStyle.cssText = sheetStyle.cssText + "\n" + (style || "");
                } : function(key, style, doc) {
                    doc = doc || document;
                    var head = doc.getElementsByTagName("head")[0], node;
                    if (!(node = doc.getElementById(key))) {
                        if (style === undefined) {
                            return "";
                        }
                        node = doc.createElement("style");
                        node.id = key;
                        head.appendChild(node);
                    }
                    if (style === undefined) {
                        return node.innerHTML;
                    }
                    if (style !== "") {
                        node.innerHTML = node.innerHTML + "\n" + style;
                    } else {
                        head.removeChild(node);
                    }
                },
                domReady: function(onready) {
                    var doc = window.document;
                    if (doc.readyState === "complete") {
                        onready();
                    } else {
                        if (isIE) {
                            (function() {
                                if (doc.isReady) return;
                                try {
                                    doc.documentElement.doScroll("left");
                                } catch (error) {
                                    setTimeout(arguments.callee, 0);
                                    return;
                                }
                                onready();
                            })();
                            window.attachEvent("onload", function() {
                                onready();
                            });
                        } else {
                            doc.addEventListener("DOMContentLoaded", function() {
                                doc.removeEventListener("DOMContentLoaded", arguments.callee, false);
                                onready();
                            }, false);
                            window.addEventListener("load", function() {
                                onready();
                            }, false);
                        }
                    }
                },
                each: function(obj, iterator, context) {
                    if (obj == null) return;
                    if (obj.length === +obj.length) {
                        for (var i = 0, l = obj.length; i < l; i++) {
                            if (iterator.call(context, obj[i], i, obj) === false) return false;
                        }
                    } else {
                        for (var key in obj) {
                            if (obj.hasOwnProperty(key)) {
                                if (iterator.call(context, obj[key], key, obj) === false) return false;
                            }
                        }
                    }
                },
                inArray: function(arr, item) {
                    var index = -1;
                    this.each(arr, function(v, i) {
                        if (v === item) {
                            index = i;
                            return false;
                        }
                    });
                    return index;
                },
                pushItem: function(arr, item) {
                    if (this.inArray(arr, item) == -1) {
                        arr.push(item);
                    }
                },
                trim: function(str) {
                    return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, "");
                },
                indexOf: function(array, item, start) {
                    var index = -1;
                    start = this.isNumber(start) ? start : 0;
                    this.each(array, function(v, i) {
                        if (i >= start && v === item) {
                            index = i;
                            return false;
                        }
                    });
                    return index;
                },
                hasClass: function(element, className) {
                    className = className.replace(/(^[ ]+)|([ ]+$)/g, "").replace(/[ ]{2,}/g, " ").split(" ");
                    for (var i = 0, ci, cls = element.className; ci = className[i++]; ) {
                        if (!new RegExp("\\b" + ci + "\\b", "i").test(cls)) {
                            return false;
                        }
                    }
                    return i - 1 == className.length;
                },
                addClass: function(elm, classNames) {
                    if (!elm) return;
                    classNames = this.trim(classNames).replace(/[ ]{2,}/g, " ").split(" ");
                    for (var i = 0, ci, cls = elm.className; ci = classNames[i++]; ) {
                        if (!new RegExp("\\b" + ci + "\\b").test(cls)) {
                            cls += " " + ci;
                        }
                    }
                    elm.className = utils.trim(cls);
                },
                removeClass: function(elm, classNames) {
                    classNames = this.isArray(classNames) ? classNames : this.trim(classNames).replace(/[ ]{2,}/g, " ").split(" ");
                    for (var i = 0, ci, cls = elm.className; ci = classNames[i++]; ) {
                        cls = cls.replace(new RegExp("\\b" + ci + "\\b"), "");
                    }
                    cls = this.trim(cls).replace(/[ ]{2,}/g, " ");
                    elm.className = cls;
                    !cls && elm.removeAttribute("className");
                },
                on: function(element, type, handler) {
                    var types = this.isArray(type) ? type : type.split(/\s+/), k = types.length;
                    if (k) while (k--) {
                        type = types[k];
                        if (element.addEventListener) {
                            element.addEventListener(type, handler, false);
                        } else {
                            if (!handler._d) {
                                handler._d = {
                                    els: []
                                };
                            }
                            var key = type + handler.toString(), index = utils.indexOf(handler._d.els, element);
                            if (!handler._d[key] || index == -1) {
                                if (index == -1) {
                                    handler._d.els.push(element);
                                }
                                if (!handler._d[key]) {
                                    handler._d[key] = function(evt) {
                                        return handler.call(evt.srcElement, evt || window.event);
                                    };
                                }
                                element.attachEvent("on" + type, handler._d[key]);
                            }
                        }
                    }
                    element = null;
                },
                off: function(element, type, handler) {
                    var types = this.isArray(type) ? type : type.split(/\s+/), k = types.length;
                    if (k) while (k--) {
                        type = types[k];
                        if (element.removeEventListener) {
                            element.removeEventListener(type, handler, false);
                        } else {
                            var key = type + handler.toString();
                            try {
                                element.detachEvent("on" + type, handler._d ? handler._d[key] : handler);
                            } catch (e) {}
                            if (handler._d && handler._d[key]) {
                                var index = utils.indexOf(handler._d.els, element);
                                if (index != -1) {
                                    handler._d.els.splice(index, 1);
                                }
                                handler._d.els.length == 0 && delete handler._d[key];
                            }
                        }
                    }
                },
                loadFile: function() {
                    var tmpList = [];
                    function getItem(doc, obj) {
                        try {
                            for (var i = 0, ci; ci = tmpList[i++]; ) {
                                if (ci.doc === doc && ci.url == (obj.src || obj.href)) {
                                    return ci;
                                }
                            }
                        } catch (e) {
                            return null;
                        }
                    }
                    return function(doc, obj, fn) {
                        var item = getItem(doc, obj);
                        if (item) {
                            if (item.ready) {
                                fn && fn();
                            } else {
                                item.funs.push(fn);
                            }
                            return;
                        }
                        tmpList.push({
                            doc: doc,
                            url: obj.src || obj.href,
                            funs: [ fn ]
                        });
                        if (!doc.body) {
                            var html = [];
                            for (var p in obj) {
                                if (p == "tag") continue;
                                html.push(p + '="' + obj[p] + '"');
                            }
                            doc.write("<" + obj.tag + " " + html.join(" ") + " ></" + obj.tag + ">");
                            return;
                        }
                        if (obj.id && doc.getElementById(obj.id)) {
                            return;
                        }
                        var element = doc.createElement(obj.tag);
                        delete obj.tag;
                        for (var p in obj) {
                            element.setAttribute(p, obj[p]);
                        }
                        element.onload = element.onreadystatechange = function() {
                            if (!this.readyState || /loaded|complete/.test(this.readyState)) {
                                item = getItem(doc, obj);
                                if (item.funs.length > 0) {
                                    item.ready = 1;
                                    for (var fi; fi = item.funs.pop(); ) {
                                        fi();
                                    }
                                }
                                element.onload = element.onreadystatechange = null;
                            }
                        };
                        element.onerror = function() {
                            throw Error("The load " + (obj.href || obj.src) + " fails,check the url");
                        };
                        doc.getElementsByTagName("head")[0].appendChild(element);
                    };
                }()
            };
            utils.each([ "String", "Function", "Array", "Number", "RegExp", "Object", "Boolean" ], function(v) {
                utils["is" + v] = function(obj) {
                    return Object.prototype.toString.apply(obj) == "[object " + v + "]";
                };
            });
            var parselist = {};
            UE.parse = {
                register: function(parseName, fn) {
                    parselist[parseName] = fn;
                },
                load: function(opt) {
                    utils.each(parselist, function(v) {
                        v.call(opt, utils);
                    });
                }
            };
            uParse = function(selector, opt) {
                utils.domReady(function() {
                    var contents;
                    if (document.querySelectorAll) {
                        contents = document.querySelectorAll(selector);
                    } else {
                        if (/^#/.test(selector)) {
                            contents = [ document.getElementById(selector.replace(/^#/, "")) ];
                        } else if (/^\./.test(selector)) {
                            var contents = [];
                            utils.each(document.getElementsByTagName("*"), function(node) {
                                if (node.className && new RegExp("\\b" + selector.replace(/^\./, "") + "\\b", "i").test(node.className)) {
                                    contents.push(node);
                                }
                            });
                        } else {
                            contents = document.getElementsByTagName(selector);
                        }
                    }
                    utils.each(contents, function(v) {
                        UE.parse.load(utils.extend({
                            root: v,
                            selector: selector
                        }, opt));
                    });
                });
            };
        })();
        UE.parse.register("insertcode", function(utils) {
            var pres = this.root.getElementsByTagName("pre");
            if (pres.length) {
                if (typeof XRegExp == "undefined") {
                    var jsurl, cssurl;
                    if (this.rootPath !== undefined) {
                        jsurl = utils.removeLastbs(this.rootPath) + "/third-party/SyntaxHighlighter/shCore.js";
                        cssurl = utils.removeLastbs(this.rootPath) + "/third-party/SyntaxHighlighter/shCoreDefault.css";
                    } else {
                        jsurl = this.highlightJsUrl;
                        cssurl = this.highlightCssUrl;
                    }
                    utils.loadFile(document, {
                        id: "syntaxhighlighter_css",
                        tag: "link",
                        rel: "stylesheet",
                        type: "text/css",
                        href: cssurl
                    });
                    utils.loadFile(document, {
                        id: "syntaxhighlighter_js",
                        src: jsurl,
                        tag: "script",
                        type: "text/javascript",
                        defer: "defer"
                    }, function() {
                        utils.each(pres, function(pi) {
                            if (pi && /brush/i.test(pi.className)) {
                                SyntaxHighlighter.highlight(pi);
                            }
                        });
                    });
                } else {
                    utils.each(pres, function(pi) {
                        if (pi && /brush/i.test(pi.className)) {
                            SyntaxHighlighter.highlight(pi);
                        }
                    });
                }
            }
        });
        UE.parse.register("table", function(utils) {
            var me = this, root = this.root, tables = root.getElementsByTagName("table");
            if (tables.length) {
                var selector = this.selector;
                //追加默认的表格样式
                utils.cssRule("table", selector + " table.noBorderTable td," + selector + " table.noBorderTable th," + selector + " table.noBorderTable caption{border:1px dashed #ddd !important}" + selector + " table.sortEnabled tr.firstRow th," + selector + " table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;" + "background-position: center right; background-image:url(" + this.rootPath + "themes/default/images/sortable.png);}" + selector + " table.sortEnabled tr.firstRow th:hover," + selector + " table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}" + selector + " table{margin-bottom:10px;border-collapse:collapse;display:table;}" + selector + " td," + selector + " th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}" + selector + " caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}" + selector + " th{border-top:1px solid #BBB;background:#F7F7F7;}" + selector + " table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}" + selector + " tr.ue-table-interlace-color-single td{ background: #fcfcfc; }" + selector + " tr.ue-table-interlace-color-double td{ background: #f7faff; }" + selector + " td p{margin:0;padding:0;}", document);
                //填充空的单元格
                utils.each("td th caption".split(" "), function(tag) {
                    var cells = root.getElementsByTagName(tag);
                    cells.length && utils.each(cells, function(node) {
                        if (!node.firstChild) {
                            node.innerHTML = "&nbsp;";
                        }
                    });
                });
                //表格可排序
                var tables = root.getElementsByTagName("table");
                utils.each(tables, function(table) {
                    if (/\bsortEnabled\b/.test(table.className)) {
                        utils.on(table, "click", function(e) {
                            var target = e.target || e.srcElement, cell = findParentByTagName(target, [ "td", "th" ]);
                            var table = findParentByTagName(target, "table"), colIndex = utils.indexOf(table.rows[0].cells, cell), sortType = table.getAttribute("data-sort-type");
                            if (colIndex != -1) {
                                sortTable(table, colIndex, me.tableSortCompareFn || sortType);
                                updateTable(table);
                            }
                        });
                    }
                });
                //按照标签名查找父节点
                function findParentByTagName(target, tagNames) {
                    var i, current = target;
                    tagNames = utils.isArray(tagNames) ? tagNames : [ tagNames ];
                    while (current) {
                        for (i = 0; i < tagNames.length; i++) {
                            if (current.tagName == tagNames[i].toUpperCase()) return current;
                        }
                        current = current.parentNode;
                    }
                    return null;
                }
                //表格排序
                function sortTable(table, sortByCellIndex, compareFn) {
                    var rows = table.rows, trArray = [], flag = rows[0].cells[0].tagName === "TH", lastRowIndex = 0;
                    for (var i = 0, len = rows.length; i < len; i++) {
                        trArray[i] = rows[i];
                    }
                    var Fn = {
                        reversecurrent: function(td1, td2) {
                            return 1;
                        },
                        orderbyasc: function(td1, td2) {
                            var value1 = td1.innerText || td1.textContent, value2 = td2.innerText || td2.textContent;
                            return value1.localeCompare(value2);
                        },
                        reversebyasc: function(td1, td2) {
                            var value1 = td1.innerHTML, value2 = td2.innerHTML;
                            return value2.localeCompare(value1);
                        },
                        orderbynum: function(td1, td2) {
                            var value1 = td1[utils.isIE ? "innerText" : "textContent"].match(/\d+/), value2 = td2[utils.isIE ? "innerText" : "textContent"].match(/\d+/);
                            if (value1) value1 = +value1[0];
                            if (value2) value2 = +value2[0];
                            return (value1 || 0) - (value2 || 0);
                        },
                        reversebynum: function(td1, td2) {
                            var value1 = td1[utils.isIE ? "innerText" : "textContent"].match(/\d+/), value2 = td2[utils.isIE ? "innerText" : "textContent"].match(/\d+/);
                            if (value1) value1 = +value1[0];
                            if (value2) value2 = +value2[0];
                            return (value2 || 0) - (value1 || 0);
                        }
                    };
                    //对表格设置排序的标记data-sort-type
                    table.setAttribute("data-sort-type", compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn : "");
                    //th不参与排序
                    flag && trArray.splice(0, 1);
                    trArray = sort(trArray, function(tr1, tr2) {
                        var result;
                        if (compareFn && typeof compareFn === "function") {
                            result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
                        } else if (compareFn && typeof compareFn === "number") {
                            result = 1;
                        } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) {
                            result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
                        } else {
                            result = Fn["orderbyasc"].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
                        }
                        return result;
                    });
                    var fragment = table.ownerDocument.createDocumentFragment();
                    for (var j = 0, len = trArray.length; j < len; j++) {
                        fragment.appendChild(trArray[j]);
                    }
                    var tbody = table.getElementsByTagName("tbody")[0];
                    if (!lastRowIndex) {
                        tbody.appendChild(fragment);
                    } else {
                        tbody.insertBefore(fragment, rows[lastRowIndex - range.endRowIndex + range.beginRowIndex - 1]);
                    }
                }
                //冒泡排序
                function sort(array, compareFn) {
                    compareFn = compareFn || function(item1, item2) {
                        return item1.localeCompare(item2);
                    };
                    for (var i = 0, len = array.length; i < len; i++) {
                        for (var j = i, length = array.length; j < length; j++) {
                            if (compareFn(array[i], array[j]) > 0) {
                                var t = array[i];
                                array[i] = array[j];
                                array[j] = t;
                            }
                        }
                    }
                    return array;
                }
                //更新表格
                function updateTable(table) {
                    //给第一行设置firstRow的样式名称,在排序图标的样式上使用到
                    if (!utils.hasClass(table.rows[0], "firstRow")) {
                        for (var i = 1; i < table.rows.length; i++) {
                            utils.removeClass(table.rows[i], "firstRow");
                        }
                        utils.addClass(table.rows[0], "firstRow");
                    }
                }
            }
        });
        UE.parse.register("charts", function(utils) {
            utils.cssRule("chartsContainerHeight", ".edui-chart-container { height:" + (this.chartContainerHeight || 300) + "px}");
            var resourceRoot = this.rootPath, containers = this.root, sources = null;
            //不存在指定的根路径， 则直接退出
            if (!resourceRoot) {
                return;
            }
            if (sources = parseSources()) {
                loadResources();
            }
            function parseSources() {
                if (!containers) {
                    return null;
                }
                return extractChartData(containers);
            }
            /**
     * 提取数据
     */
            function extractChartData(rootNode) {
                var data = [], tables = rootNode.getElementsByTagName("table");
                for (var i = 0, tableNode; tableNode = tables[i]; i++) {
                    if (tableNode.getAttribute("data-chart") !== null) {
                        data.push(formatData(tableNode));
                    }
                }
                return data.length ? data : null;
            }
            function formatData(tableNode) {
                var meta = tableNode.getAttribute("data-chart"), metaConfig = {}, data = [];
                //提取table数据
                for (var i = 0, row; row = tableNode.rows[i]; i++) {
                    var rowData = [];
                    for (var j = 0, cell; cell = row.cells[j]; j++) {
                        var value = cell.innerText || cell.textContent || "";
                        rowData.push(cell.tagName == "TH" ? value : value | 0);
                    }
                    data.push(rowData);
                }
                //解析元信息
                meta = meta.split(";");
                for (var i = 0, metaData; metaData = meta[i]; i++) {
                    metaData = metaData.split(":");
                    metaConfig[metaData[0]] = metaData[1];
                }
                return {
                    table: tableNode,
                    meta: metaConfig,
                    data: data
                };
            }
            //加载资源
            function loadResources() {
                loadJQuery();
            }
            function loadJQuery() {
                //不存在jquery， 则加载jquery
                if (!window.jQuery) {
                    utils.loadFile(document, {
                        src: resourceRoot + "/third-party/jquery-1.10.2.min.js",
                        tag: "script",
                        type: "text/javascript",
                        defer: "defer"
                    }, function() {
                        loadHighcharts();
                    });
                } else {
                    loadHighcharts();
                }
            }
            function loadHighcharts() {
                //不存在Highcharts， 则加载Highcharts
                if (!window.Highcharts) {
                    utils.loadFile(document, {
                        src: resourceRoot + "/third-party/highcharts/highcharts.js",
                        tag: "script",
                        type: "text/javascript",
                        defer: "defer"
                    }, function() {
                        loadTypeConfig();
                    });
                } else {
                    loadTypeConfig();
                }
            }
            //加载图表差异化配置文件
            function loadTypeConfig() {
                utils.loadFile(document, {
                    src: resourceRoot + "/dialogs/charts/chart.config.js",
                    tag: "script",
                    type: "text/javascript",
                    defer: "defer"
                }, function() {
                    render();
                });
            }
            //渲染图表
            function render() {
                var config = null, chartConfig = null, container = null;
                for (var i = 0, len = sources.length; i < len; i++) {
                    config = sources[i];
                    chartConfig = analysisConfig(config);
                    container = createContainer(config.table);
                    renderChart(container, typeConfig[config.meta.chartType], chartConfig);
                }
            }
            /**
     * 渲染图表
     * @param container 图表容器节点对象
     * @param typeConfig 图表类型配置
     * @param config 图表通用配置
     * */
            function renderChart(container, typeConfig, config) {
                $(container).highcharts($.extend({}, typeConfig, {
                    credits: {
                        enabled: false
                    },
                    exporting: {
                        enabled: false
                    },
                    title: {
                        text: config.title,
                        x: -20
                    },
                    subtitle: {
                        text: config.subTitle,
                        x: -20
                    },
                    xAxis: {
                        title: {
                            text: config.xTitle
                        },
                        categories: config.categories
                    },
                    yAxis: {
                        title: {
                            text: config.yTitle
                        },
                        plotLines: [ {
                            value: 0,
                            width: 1,
                            color: "#808080"
                        } ]
                    },
                    tooltip: {
                        enabled: true,
                        valueSuffix: config.suffix
                    },
                    legend: {
                        layout: "vertical",
                        align: "right",
                        verticalAlign: "middle",
                        borderWidth: 1
                    },
                    series: config.series
                }));
            }
            /**
     * 创建图表的容器
     * 新创建的容器会替换掉对应的table对象
     * */
            function createContainer(tableNode) {
                var container = document.createElement("div");
                container.className = "edui-chart-container";
                tableNode.parentNode.replaceChild(container, tableNode);
                return container;
            }
            //根据config解析出正确的类别和图表数据信息
            function analysisConfig(config) {
                var series = [], //数据类别
                categories = [], result = [], data = config.data, meta = config.meta;
                //数据对齐方式为相反的方式， 需要反转数据
                if (meta.dataFormat != "1") {
                    for (var i = 0, len = data.length; i < len; i++) {
                        for (var j = 0, jlen = data[i].length; j < jlen; j++) {
                            if (!result[j]) {
                                result[j] = [];
                            }
                            result[j][i] = data[i][j];
                        }
                    }
                    data = result;
                }
                result = {};
                //普通图表
                if (meta.chartType != typeConfig.length - 1) {
                    categories = data[0].slice(1);
                    for (var i = 1, curData; curData = data[i]; i++) {
                        series.push({
                            name: curData[0],
                            data: curData.slice(1)
                        });
                    }
                    result.series = series;
                    result.categories = categories;
                    result.title = meta.title;
                    result.subTitle = meta.subTitle;
                    result.xTitle = meta.xTitle;
                    result.yTitle = meta.yTitle;
                    result.suffix = meta.suffix;
                } else {
                    var curData = [];
                    for (var i = 1, len = data[0].length; i < len; i++) {
                        curData.push([ data[0][i], data[1][i] | 0 ]);
                    }
                    //饼图
                    series[0] = {
                        type: "pie",
                        name: meta.tip,
                        data: curData
                    };
                    result.series = series;
                    result.title = meta.title;
                    result.suffix = meta.suffix;
                }
                return result;
            }
        });
        UE.parse.register("background", function(utils) {
            var me = this, root = me.root, p = root.getElementsByTagName("p"), styles;
            for (var i = 0, ci; ci = p[i++]; ) {
                styles = ci.getAttribute("data-background");
                if (styles) {
                    ci.parentNode.removeChild(ci);
                }
            }
            //追加默认的表格样式
            styles && utils.cssRule("ueditor_background", me.selector + "{" + styles + "}", document);
        });
        UE.parse.register("list", function(utils) {
            var customCss = [], customStyle = {
                cn: "cn-1-",
                cn1: "cn-2-",
                cn2: "cn-3-",
                num: "num-1-",
                num1: "num-2-",
                num2: "num-3-",
                dash: "dash",
                dot: "dot"
            };
            utils.extend(this, {
                liiconpath: "http://bs.baidu.com/listicon/",
                listDefaultPaddingLeft: "20"
            });
            var root = this.root, ols = root.getElementsByTagName("ol"), uls = root.getElementsByTagName("ul"), selector = this.selector;
            if (ols.length) {
                applyStyle.call(this, ols);
            }
            if (uls.length) {
                applyStyle.call(this, uls);
            }
            if (ols.length || uls.length) {
                customCss.push(selector + " .list-paddingleft-1{padding-left:0}");
                customCss.push(selector + " .list-paddingleft-2{padding-left:" + this.listDefaultPaddingLeft + "px}");
                customCss.push(selector + " .list-paddingleft-3{padding-left:" + this.listDefaultPaddingLeft * 2 + "px}");
                utils.cssRule("list", selector + " ol," + selector + " ul{margin:0;padding:0;}li{clear:both;}" + customCss.join("\n"), document);
            }
            function applyStyle(nodes) {
                var T = this;
                utils.each(nodes, function(list) {
                    if (list.className && /custom_/i.test(list.className)) {
                        var listStyle = list.className.match(/custom_(\w+)/)[1];
                        if (listStyle == "dash" || listStyle == "dot") {
                            utils.pushItem(customCss, selector + " li.list-" + customStyle[listStyle] + "{background-image:url(" + T.liiconpath + customStyle[listStyle] + ".gif)}");
                            utils.pushItem(customCss, selector + " ul.custom_" + listStyle + "{list-style:none;} " + selector + " ul.custom_" + listStyle + " li{background-position:0 3px;background-repeat:no-repeat}");
                        } else {
                            var index = 1;
                            utils.each(list.childNodes, function(li) {
                                if (li.tagName == "LI") {
                                    utils.pushItem(customCss, selector + " li.list-" + customStyle[listStyle] + index + "{background-image:url(" + T.liiconpath + "list-" + customStyle[listStyle] + index + ".gif)}");
                                    index++;
                                }
                            });
                            utils.pushItem(customCss, selector + " ol.custom_" + listStyle + "{list-style:none;}" + selector + " ol.custom_" + listStyle + " li{background-position:0 3px;background-repeat:no-repeat}");
                        }
                        switch (listStyle) {
                          case "cn":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-1{padding-left:25px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-2{padding-left:40px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-3{padding-left:55px}");
                            break;

                          case "cn1":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-1{padding-left:30px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-2{padding-left:40px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-3{padding-left:55px}");
                            break;

                          case "cn2":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-1{padding-left:40px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-2{padding-left:55px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-3{padding-left:68px}");
                            break;

                          case "num":
                          case "num1":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-1{padding-left:25px}");
                            break;

                          case "num2":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-1{padding-left:35px}");
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft-2{padding-left:40px}");
                            break;

                          case "dash":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft{padding-left:35px}");
                            break;

                          case "dot":
                            utils.pushItem(customCss, selector + " li.list-" + listStyle + "-paddingleft{padding-left:20px}");
                        }
                    }
                });
            }
        });
        UE.parse.register("vedio", function(utils) {
            var video = this.root.getElementsByTagName("video"), audio = this.root.getElementsByTagName("audio");
            document.createElement("video");
            document.createElement("audio");
            if (video.length || audio.length) {
                var sourcePath = utils.removeLastbs(this.rootPath), jsurl = sourcePath + "/third-party/video-js/video.js", cssurl = sourcePath + "/third-party/video-js/video-js.min.css", swfUrl = sourcePath + "/third-party/video-js/video-js.swf";
                if (window.videojs) {
                    videojs.autoSetup();
                } else {
                    utils.loadFile(document, {
                        id: "video_css",
                        tag: "link",
                        rel: "stylesheet",
                        type: "text/css",
                        href: cssurl
                    });
                    utils.loadFile(document, {
                        id: "video_js",
                        src: jsurl,
                        tag: "script",
                        type: "text/javascript"
                    }, function() {
                        videojs.options.flash.swf = swfUrl;
                        videojs.autoSetup();
                    });
                }
            }
        });
    })();
});